

#import "OCListViewController.h"
 
@interface OCListViewController () <UITableViewDataSource, UITableViewDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>

@end

@implementation OCListViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.tableView];
//    self.tableView.emptyDataSetSource = self;
//    self.tableView.emptyDataSetDelegate = self;
    
    kWEAKSELF
    
    MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf requestHandlerWishIsRefresh:YES];
    }];
    
//    header.lastUpdatedTimeLabel.textColor = UIColor.whiteColor;
//    header.stateLabel.textColor = UIColor.whiteColor;
    self.tableView.mj_header = header;
    
    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
//        make.edges.equalTo(self.view);
        make.left.right.bottom.equalTo(self.view);
        make.top.equalTo(self.view.mas_safeAreaLayoutGuideTop);
    }];
}

#pragma mark ------- Public Methods -------
- (void)requestHandlerWishIsRefresh:(BOOL)isRefresh { }

- (void)tableBeginRefresh {
    [self.tableView.mj_header beginRefreshing];
}

- (void)tableEndRefresh {
    kWEAKSELF
    dispatch_async(dispatch_get_main_queue(), ^{
        [weakSelf.tableView reloadData];
    });
    [self.tableView.mj_header endRefreshing];
}

- (void)apiFailed:(NSString *)msg {
    [OCProgress_HUD showErrorWithStatus:msg];
    [self.tableView.mj_header endRefreshing];
}

#pragma mark ------- DZNEmptyDataSetDelegate -------

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView {
    return [[NSAttributedString alloc] initWithString:@"暂时没有数据哟" attributes:@{NSFontAttributeName : kAdaptedFontSize(16)}];
}

//- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView {
//    return [UIImage imageNamed:@"no_data"];
//}

//- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView {
//    return -kStatusbarAndNavigationbarHeight;
//}

#pragma mark ------- DZNEmptyDataSetDelegate -------

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView;
{
    return YES;
}

#pragma mark ------- UITableViewDelegate -------

/**
 *  必须实现，如果子类没有实现这个方法，调用[self.tableView.dataSource numberOfSectionsInTableView:self.tableView]会crach
 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0.00001;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return [UIView new];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return kFragmemtFloat(44);
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.tableData count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [UITableViewCell ff_CellDequeueWithId:tableView];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

#pragma mark ------- Lazy Methods -------

- (UITableView *)tableView {
    if (!_tableView) {
        if (self.tableViewStyle == UITableViewStyleGrouped) {
            _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
        } else {
            _tableView = [[UITableView alloc] initWithFrame:CGRectZero];
        }
        [self.view addSubview:self.tableView];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, kFragmemtFloat(20))];
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _tableView.backgroundColor = [UIColor clearColor];
        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        _tableView.showsVerticalScrollIndicator = NO;
        _tableView.showsHorizontalScrollIndicator = NO;
        if(@available(iOS 15.0,*)){_tableView.sectionHeaderTopPadding=0;}
    }
    return _tableView;
}

@end
